#include<WiFi.h>

#define led 2
#define led_read digitalRead(led)
#define leds digitalWrite(led, !digitalRead(led))
#define led_on digitalWrite(led,HIGH)
#define led_off digitalWrite(led,LOW)
#define button 0
#define button_read digitalRead(button)




volatile int a ;//申明全局变量
volatile int b ;

//核心0运行的程序，在二号管脚实现呼吸灯
void task_1( void * pvParameters ){
for(;;){

   for (int n = 0;n<255;n++){
    
    analogWrite(led,n);
    delay(10);


   }
   for (int m = 255;m>0;m--){
    
    analogWrite(led,m);
    delay(10);

   }
   
 

  
   

  
  vTaskDelay(1);
}
}

void setup(){
  pinMode(led, OUTPUT);
  pinMode(button, INPUT);
  Serial.begin(9600);
  Serial.println("开始任务1");
  Serial.println("开始任务2");
  xTaskCreatePinnedToCore(task_1, "task_1", 4096, NULL, 2, NULL, 0);

}

void loop(){
  //ESP32拥有两个核心，核心0与核心1，默认程序运行在核心1
  //可以使用Task调用核心0或者核心1执行不同任务且不会相互干扰
  //（同一时刻，同一硬件资源，只能被一个核心调用，记住这个
  //使用限制，使用需注意否则会导致开发板无限重启），双核是
  //真正意义上的独立运行不会受到另一个核心的影响例如下方的
  //例子当中主循环的延时函数并不会影响核心0的任务执行，Task
  //使用类似于UNO多线程

  vTaskDelay(1);

  Serial.println("任务1");
  delay(5000);

}